package com.briup.day08;

/**
 * @author lining
 * @date 2024/1/17 9:41
 */
public class Father {
    public int id;
    //当子类对象创建时，（默认）自动调用父类的无参构造器
    public Father(){
        //作用： 对父类中属性进行赋值操作 0 null false 0.0
        System.out.println("调用父类无参构造器");
    }

    public Father(int id) {
        System.out.println("调用父类有参构造器");
        this.id = id;
    }

    public static void main(String[] args) {
        Son son = new Son();
        System.out.println(son);//输出地址值 Object(toString)
        System.out.println("---------------------");
        Son s2 = new Son("jack", "beijing");
        System.out.println(s2);
        System.out.println("--------------");
        Son s3 = new Son(1,"jack", "beijing");
        System.out.println(s3);
    }
}
class Son extends Father{
    private String name;
    private String city;
    //当子类对象创建时，（默认）自动调用父类的无参构造器
    public Son() {
        //显示调用父类无参构造器
        super();
        System.out.println("调用子类构造器");
    }

    public Son(String name, String city) {
        super();//表示对父类中属性进行赋默认值
        this.name = name;//表示对子类属性进行赋值
        this.city = city;//表示对子类属性进行赋值
    }
    public Son(int id,String name, String city) {
        //如何对id使用？  super.id = id;
        //使用父类的构造器进行赋值操作
        super(id);//super.Father(id)
        this.name = name;//表示对子类属性进行赋值
        this.city = city;//表示对子类属性进行赋值
    }

    @Override
    public String toString() {
        return "Son{" +
                "name='" + name + '\'' +
                ", city='" + city + '\'' +
                ", id=" + id +
                '}';
    }
}